import numpy as np
import tensorflow as tf
from tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input
from tensorflow.keras.preprocessing.image import load_img, img_to_array
from sklearn.cluster import KMeans
import os
import matplotlib.pyplot as plt
from tqdm import tqdm
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
from sklearn.preprocessing import LabelEncoder
pip freeze requiremests.txt
absl-py==1.4.0 asttokens @ file:///opt/conda/conda-bld/asttokens_1646925590279/work astunparse==1.6.3 attrs==23.1.0 backcall @ file:///home/ktietz/src/ci/backcall_1611930011877/work beautifulsoup4==4.12.2 bleach==6.0.0 boltons @ file:///C:/b/abs_707eo7c09t/croot/boltons_1677628723117/work brotlipy==0.7.0 cachetools==5.3.0 catboost==1.2 certifi==2023.5.7 cffi @ file:///C:/b/abs_49n3v2hyhr/croot/cffi_1670423218144/work chardet==5.1.0 charset-normalizer==3.1.0 click==8.1.3 colorama @ file:///C:/b/abs_a9ozq0l032/croot/colorama_1672387194846/work comm @ file:///C:/b/abs_1419earm7u/croot/comm_1671231131638/work conda @ file:///D:/bld/conda_1685035341939/work conda-package-handling @ file:///C:/b/abs_ce4_vcfd0y/croot/conda-package-handling_1685024800103/work conda_package_streaming @ file:///C:/b/abs_88a7k_wmm1/croot/conda-package-streaming_1685019697115/work contourpy==1.0.7 cryptography @ file:///C:/b/abs_8ecplyc3n2/croot/cryptography_1677533105000/work cycler==0.11.0 debugpy @ file:///C:/ci_310/debugpy_1642079916595/work decorator @ file:///opt/conda/conda-bld/decorator_1643638310831/work decouple==0.0.7 defusedxml==0.7.1 entrypoints @ file:///C:/ci/entrypoints_1649926676279/work et-xmlfile==1.1.0 executing @ file:///opt/conda/conda-bld/executing_1646925071911/work fastjsonschema==2.17.1 flatbuffers==1.12 fonttools==4.39.0 gast==0.4.0 google-api-core==2.11.0 google-api-python-client==2.82.0 google-auth==2.16.2 google-auth-httplib2==0.1.0 google-auth-oauthlib==0.4.6 google-pasta==0.2.0 googleapis-common-protos==1.58.0 graphviz==0.20.1 greenlet==2.0.2 grpcio==1.54.2 h5py==3.8.0 httplib2==0.21.0 idna @ file:///C:/b/abs_bdhbebrioa/croot/idna_1666125572046/work imbalanced-learn==0.10.1 imblearn==0.0 ipykernel @ file:///C:/b/abs_b4f07tbsyd/croot/ipykernel_1672767104060/work ipython @ file:///C:/b/abs_d4_i9p0_36/croot/ipython_1674681439495/work jax==0.4.11 jedi @ file:///C:/ci/jedi_1644315428305/work Jinja2==3.1.2 joblib==1.2.0 jsonpatch @ file:///tmp/build/80754af9/jsonpatch_1615747632069/work jsonpointer==2.1 jsonschema==4.17.3 jupyter_client @ file:///C:/b/abs_b9pns5mx5p/croot/jupyter_client_1671703062216/work jupyter_core @ file:///C:/b/abs_84df679bho/croot/jupyter_core_1672332237650/work jupyterlab-pygments==0.2.2 keras==2.9.0 Keras-Preprocessing==1.1.2 kiwisolver==1.4.4 libclang==16.0.0 lightgbm==3.3.5 lxml==4.9.2 Markdown==3.4.3 MarkupSafe==2.1.2 matplotlib==3.7.1 matplotlib-inline @ file:///C:/ci/matplotlib-inline_1661934094726/work menuinst @ file:///C:/Users/BUILDE~1/AppData/Local/Temp/abs_455sf5o0ct/croots/recipe/menuinst_1661805970842/work mistune==2.0.5 ml-dtypes==0.2.0 mysql-connector-python==8.0.33 nbclient==0.8.0 nbconvert==7.4.0 nbformat==5.8.0 nest-asyncio @ file:///C:/b/abs_3a_4jsjlqu/croot/nest-asyncio_1672387322800/work nltk==3.8.1 numpy==1.23.5 nvidia-pyindex==1.0.9 oauthlib==3.2.2 openpyxl==3.1.2 opt-einsum==3.3.0 packaging @ file:///C:/b/abs_ed_kb9w6g4/croot/packaging_1678965418855/work pandas==1.5.3 pandocfilters==1.5.0 parso @ file:///opt/conda/conda-bld/parso_1641458642106/work pickleshare @ file:///tmp/build/80754af9/pickleshare_1606932040724/work Pillow==9.4.0 platformdirs @ file:///C:/b/abs_73cc5cz_1u/croots/recipe/platformdirs_1662711386458/work plotly==5.14.1 pluggy @ file:///C:/ci/pluggy_1648042746254/work prompt-toolkit @ file:///C:/b/abs_6coz5_9f2s/croot/prompt-toolkit_1672387908312/work protobuf==3.19.6 psutil @ file:///C:/Windows/Temp/abs_b2c2fd7f-9fd5-4756-95ea-8aed74d0039flsd9qufz/croots/recipe/psutil_1656431277748/work psycopg2==2.9.5 pure-eval @ file:///opt/conda/conda-bld/pure_eval_1646925070566/work pyasn1==0.4.8 pyasn1-modules==0.2.8 pycosat @ file:///C:/b/abs_4b1rrw8pn9/croot/pycosat_1666807711599/work pycparser @ file:///tmp/build/80754af9/pycparser_1636541352034/work Pygments @ file:///opt/conda/conda-bld/pygments_1644249106324/work pyOpenSSL @ file:///C:/b/abs_552w85x1jz/croot/pyopenssl_1677607703691/work pyparsing==3.0.9 pyrsistent==0.19.3 PySocks @ file:///C:/ci_310/pysocks_1642089375450/work python-dateutil @ file:///tmp/build/80754af9/python-dateutil_1626374649649/work pytz==2022.7.1 pywin32==305.1 pyzmq @ file:///C:/ci/pyzmq_1657616000714/work regex==2023.3.23 requests==2.28.2 requests-oauthlib==1.3.1 rsa==4.9 ruamel.yaml @ file:///C:/b/abs_30ee5qbthd/croot/ruamel.yaml_1666304562000/work ruamel.yaml.clib @ file:///C:/b/abs_aarblxbilo/croot/ruamel.yaml.clib_1666302270884/work scikit-learn==1.2.2 scipy==1.10.1 seaborn==0.12.2 six @ file:///tmp/build/80754af9/six_1644875935023/work soupsieve==2.4.1 SQLAlchemy==2.0.7 SQLAlchemy-Utils==0.40.0 stack-data @ file:///opt/conda/conda-bld/stack_data_1646927590127/work tenacity==8.2.2 tensorboard==2.9.1 tensorboard-data-server==0.6.1 tensorboard-plugin-wit==1.8.1 tensorflow==2.9.3 tensorflow-estimator==2.9.0 tensorflow-intel==2.12.0 tensorflow-io-gcs-filesystem==0.31.0 termcolor==2.3.0 threadpoolctl==3.1.0 tinycss2==1.2.1 toolz @ file:///C:/b/abs_cfvk6rc40d/croot/toolz_1667464080130/work tornado @ file:///C:/ci/tornado_1662476985533/work tqdm @ file:///C:/b/abs_f76j9hg7pv/croot/tqdm_1679561871187/work traitlets @ file:///C:/b/abs_e5m_xjjl94/croot/traitlets_1671143896266/work typing_extensions==4.5.0 uritemplate==4.1.1 urllib3 @ file:///C:/b/abs_3ce53vrdcr/croot/urllib3_1680254693505/work vaderSentiment==3.3.2 wcwidth @ file:///Users/ktietz/demo/mc3/conda-bld/wcwidth_1629357192024/work webencodings==0.5.1 Werkzeug==2.3.4 win-inet-pton @ file:///C:/ci_310/win_inet_pton_1642658466512/work wincertstore==0.2 wrapt==1.14.1 xgboost==1.7.5 xlrd==2.0.1 zstandard==0.19.0 Note: you may need to restart the kernel to use updated packages.
WARNING: Ignoring invalid distribution -ensorflow (e:\miniconda3\envs\bootcamp\lib\site-packages) WARNING: Ignoring invalid distribution -rotobuf (e:\miniconda3\envs\bootcamp\lib\site-packages)
seed = 52
def set_seed(seed):
np.random.seed(seed)
tf.random.set_seed(seed)
set_seed(seed)
model = ResNet50(weights='imagenet', include_top=False)
model.summary()
Model: "resnet50"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_1 (InputLayer) [(None, None, None, 0 []
3)]
conv1_pad (ZeroPadding2D) (None, None, None, 0 ['input_1[0][0]']
3)
conv1_conv (Conv2D) (None, None, None, 9472 ['conv1_pad[0][0]']
64)
conv1_bn (BatchNormalization) (None, None, None, 256 ['conv1_conv[0][0]']
64)
conv1_relu (Activation) (None, None, None, 0 ['conv1_bn[0][0]']
64)
pool1_pad (ZeroPadding2D) (None, None, None, 0 ['conv1_relu[0][0]']
64)
pool1_pool (MaxPooling2D) (None, None, None, 0 ['pool1_pad[0][0]']
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_1 (InputLayer) [(None, None, None, 0 []
3)]
conv1_pad (ZeroPadding2D) (None, None, None, 0 ['input_1[0][0]']
3)
conv1_conv (Conv2D) (None, None, None, 9472 ['conv1_pad[0][0]']
64)
conv1_bn (BatchNormalization) (None, None, None, 256 ['conv1_conv[0][0]']
64)
conv1_relu (Activation) (None, None, None, 0 ['conv1_bn[0][0]']
64)
pool1_pad (ZeroPadding2D) (None, None, None, 0 ['conv1_relu[0][0]']
64)
pool1_pool (MaxPooling2D) (None, None, None, 0 ['pool1_pad[0][0]']
64)
conv2_block1_1_conv (Conv2D) (None, None, None, 4160 ['pool1_pool[0][0]']
64)
conv2_block1_1_bn (BatchNormal (None, None, None, 256 ['conv2_block1_1_conv[0][0]']
ization) 64)
conv2_block1_1_relu (Activatio (None, None, None, 0 ['conv2_block1_1_bn[0][0]']
n) 64)
conv2_block1_2_conv (Conv2D) (None, None, None, 36928 ['conv2_block1_1_relu[0][0]']
64)
conv2_block1_2_bn (BatchNormal (None, None, None, 256 ['conv2_block1_2_conv[0][0]']
ization) 64)
conv2_block1_2_relu (Activatio (None, None, None, 0 ['conv2_block1_2_bn[0][0]']
n) 64)
conv2_block1_0_conv (Conv2D) (None, None, None, 16640 ['pool1_pool[0][0]']
256)
conv2_block1_3_conv (Conv2D) (None, None, None, 16640 ['conv2_block1_2_relu[0][0]']
256)
conv2_block1_0_bn (BatchNormal (None, None, None, 1024 ['conv2_block1_0_conv[0][0]']
ization) 256)
conv2_block1_3_bn (BatchNormal (None, None, None, 1024 ['conv2_block1_3_conv[0][0]']
ization) 256)
conv2_block1_add (Add) (None, None, None, 0 ['conv2_block1_0_bn[0][0]',
256) 'conv2_block1_3_bn[0][0]']
conv2_block1_out (Activation) (None, None, None, 0 ['conv2_block1_add[0][0]']
256)
conv2_block2_1_conv (Conv2D) (None, None, None, 16448 ['conv2_block1_out[0][0]']
64)
conv2_block2_1_bn (BatchNormal (None, None, None, 256 ['conv2_block2_1_conv[0][0]']
ization) 64)
conv2_block2_1_relu (Activatio (None, None, None, 0 ['conv2_block2_1_bn[0][0]']
n) 64)
conv2_block2_2_conv (Conv2D) (None, None, None, 36928 ['conv2_block2_1_relu[0][0]']
64)
conv2_block2_2_bn (BatchNormal (None, None, None, 256 ['conv2_block2_2_conv[0][0]']
ization) 64)
conv2_block2_2_relu (Activatio (None, None, None, 0 ['conv2_block2_2_bn[0][0]']
n) 64)
conv2_block2_3_conv (Conv2D) (None, None, None, 16640 ['conv2_block2_2_relu[0][0]']
256)
conv2_block2_3_bn (BatchNormal (None, None, None, 1024 ['conv2_block2_3_conv[0][0]']
ization) 256)
conv2_block2_add (Add) (None, None, None, 0 ['conv2_block1_out[0][0]',
256) 'conv2_block2_3_bn[0][0]']
conv2_block2_out (Activation) (None, None, None, 0 ['conv2_block2_add[0][0]']
256)
conv2_block3_1_conv (Conv2D) (None, None, None, 16448 ['conv2_block2_out[0][0]']
64)
conv2_block3_1_bn (BatchNormal (None, None, None, 256 ['conv2_block3_1_conv[0][0]']
ization) 64)
conv2_block3_1_relu (Activatio (None, None, None, 0 ['conv2_block3_1_bn[0][0]']
n) 64)
conv2_block3_2_conv (Conv2D) (None, None, None, 36928 ['conv2_block3_1_relu[0][0]']
64)
conv2_block3_2_bn (BatchNormal (None, None, None, 256 ['conv2_block3_2_conv[0][0]']
ization) 64)
conv2_block3_2_relu (Activatio (None, None, None, 0 ['conv2_block3_2_bn[0][0]']
n) 64)
conv2_block3_3_conv (Conv2D) (None, None, None, 16640 ['conv2_block3_2_relu[0][0]']
256)
conv2_block3_3_bn (BatchNormal (None, None, None, 1024 ['conv2_block3_3_conv[0][0]']
ization) 256)
conv2_block3_add (Add) (None, None, None, 0 ['conv2_block2_out[0][0]',
256) 'conv2_block3_3_bn[0][0]']
conv2_block3_out (Activation) (None, None, None, 0 ['conv2_block3_add[0][0]']
256)
conv3_block1_1_conv (Conv2D) (None, None, None, 32896 ['conv2_block3_out[0][0]']
128)
conv3_block1_1_bn (BatchNormal (None, None, None, 512 ['conv3_block1_1_conv[0][0]']
ization) 128)
conv3_block1_1_relu (Activatio (None, None, None, 0 ['conv3_block1_1_bn[0][0]']
n) 128)
conv3_block1_2_conv (Conv2D) (None, None, None, 147584 ['conv3_block1_1_relu[0][0]']
128)
conv3_block1_2_bn (BatchNormal (None, None, None, 512 ['conv3_block1_2_conv[0][0]']
ization) 128)
conv3_block1_2_relu (Activatio (None, None, None, 0 ['conv3_block1_2_bn[0][0]']
n) 128)
conv3_block1_0_conv (Conv2D) (None, None, None, 131584 ['conv2_block3_out[0][0]']
512)
conv3_block1_3_conv (Conv2D) (None, None, None, 66048 ['conv3_block1_2_relu[0][0]']
512)
conv3_block1_0_bn (BatchNormal (None, None, None, 2048 ['conv3_block1_0_conv[0][0]']
ization) 512)
conv3_block1_3_bn (BatchNormal (None, None, None, 2048 ['conv3_block1_3_conv[0][0]']
ization) 512)
conv3_block1_add (Add) (None, None, None, 0 ['conv3_block1_0_bn[0][0]',
512) 'conv3_block1_3_bn[0][0]']
conv3_block1_out (Activation) (None, None, None, 0 ['conv3_block1_add[0][0]']
512)
conv3_block2_1_conv (Conv2D) (None, None, None, 65664 ['conv3_block1_out[0][0]']
128)
conv3_block2_1_bn (BatchNormal (None, None, None, 512 ['conv3_block2_1_conv[0][0]']
ization) 128)
conv3_block2_1_relu (Activatio (None, None, None, 0 ['conv3_block2_1_bn[0][0]']
n) 128)
conv3_block2_2_conv (Conv2D) (None, None, None, 147584 ['conv3_block2_1_relu[0][0]']
128)
conv3_block2_2_bn (BatchNormal (None, None, None, 512 ['conv3_block2_2_conv[0][0]']
ization) 128)
conv3_block2_2_relu (Activatio (None, None, None, 0 ['conv3_block2_2_bn[0][0]']
n) 128)
conv3_block2_3_conv (Conv2D) (None, None, None, 66048 ['conv3_block2_2_relu[0][0]']
512)
conv3_block2_3_bn (BatchNormal (None, None, None, 2048 ['conv3_block2_3_conv[0][0]']
ization) 512)
conv3_block2_add (Add) (None, None, None, 0 ['conv3_block1_out[0][0]',
512) 'conv3_block2_3_bn[0][0]']
conv3_block2_out (Activation) (None, None, None, 0 ['conv3_block2_add[0][0]']
512)
conv3_block3_1_conv (Conv2D) (None, None, None, 65664 ['conv3_block2_out[0][0]']
128)
conv3_block3_1_bn (BatchNormal (None, None, None, 512 ['conv3_block3_1_conv[0][0]']
ization) 128)
conv3_block3_1_relu (Activatio (None, None, None, 0 ['conv3_block3_1_bn[0][0]']
n) 128)
conv3_block3_2_conv (Conv2D) (None, None, None, 147584 ['conv3_block3_1_relu[0][0]']
128)
conv3_block3_2_bn (BatchNormal (None, None, None, 512 ['conv3_block3_2_conv[0][0]']
ization) 128)
conv3_block3_2_relu (Activatio (None, None, None, 0 ['conv3_block3_2_bn[0][0]']
n) 128)
conv3_block3_3_conv (Conv2D) (None, None, None, 66048 ['conv3_block3_2_relu[0][0]']
512)
conv3_block3_3_bn (BatchNormal (None, None, None, 2048 ['conv3_block3_3_conv[0][0]']
ization) 512)
conv3_block3_add (Add) (None, None, None, 0 ['conv3_block2_out[0][0]',
512) 'conv3_block3_3_bn[0][0]']
conv3_block3_out (Activation) (None, None, None, 0 ['conv3_block3_add[0][0]']
512)
conv3_block4_1_conv (Conv2D) (None, None, None, 65664 ['conv3_block3_out[0][0]']
128)
conv3_block4_1_bn (BatchNormal (None, None, None, 512 ['conv3_block4_1_conv[0][0]']
ization) 128)
conv3_block4_1_relu (Activatio (None, None, None, 0 ['conv3_block4_1_bn[0][0]']
n) 128)
conv3_block4_2_conv (Conv2D) (None, None, None, 147584 ['conv3_block4_1_relu[0][0]']
128)
conv3_block4_2_bn (BatchNormal (None, None, None, 512 ['conv3_block4_2_conv[0][0]']
ization) 128)
conv3_block4_2_relu (Activatio (None, None, None, 0 ['conv3_block4_2_bn[0][0]']
n) 128)
conv3_block4_3_conv (Conv2D) (None, None, None, 66048 ['conv3_block4_2_relu[0][0]']
512)
conv3_block4_3_bn (BatchNormal (None, None, None, 2048 ['conv3_block4_3_conv[0][0]']
ization) 512)
conv3_block4_add (Add) (None, None, None, 0 ['conv3_block3_out[0][0]',
512) 'conv3_block4_3_bn[0][0]']
conv3_block4_out (Activation) (None, None, None, 0 ['conv3_block4_add[0][0]']
512)
conv4_block1_1_conv (Conv2D) (None, None, None, 131328 ['conv3_block4_out[0][0]']
256)
conv4_block1_1_bn (BatchNormal (None, None, None, 1024 ['conv4_block1_1_conv[0][0]']
ization) 256)
conv4_block1_1_relu (Activatio (None, None, None, 0 ['conv4_block1_1_bn[0][0]']
n) 256)
conv4_block1_2_conv (Conv2D) (None, None, None, 590080 ['conv4_block1_1_relu[0][0]']
256)
conv4_block1_2_bn (BatchNormal (None, None, None, 1024 ['conv4_block1_2_conv[0][0]']
ization) 256)
conv4_block1_2_relu (Activatio (None, None, None, 0 ['conv4_block1_2_bn[0][0]']
n) 256)
conv4_block1_0_conv (Conv2D) (None, None, None, 525312 ['conv3_block4_out[0][0]']
1024)
conv4_block1_3_conv (Conv2D) (None, None, None, 263168 ['conv4_block1_2_relu[0][0]']
1024)
conv4_block1_0_bn (BatchNormal (None, None, None, 4096 ['conv4_block1_0_conv[0][0]']
ization) 1024)
conv4_block1_3_bn (BatchNormal (None, None, None, 4096 ['conv4_block1_3_conv[0][0]']
ization) 1024)
conv4_block1_add (Add) (None, None, None, 0 ['conv4_block1_0_bn[0][0]',
1024) 'conv4_block1_3_bn[0][0]']
conv4_block1_out (Activation) (None, None, None, 0 ['conv4_block1_add[0][0]']
1024)
conv4_block2_1_conv (Conv2D) (None, None, None, 262400 ['conv4_block1_out[0][0]']
256)
conv4_block2_1_bn (BatchNormal (None, None, None, 1024 ['conv4_block2_1_conv[0][0]']
ization) 256)
conv4_block2_1_relu (Activatio (None, None, None, 0 ['conv4_block2_1_bn[0][0]']
n) 256)
conv4_block2_2_conv (Conv2D) (None, None, None, 590080 ['conv4_block2_1_relu[0][0]']
256)
conv4_block2_2_bn (BatchNormal (None, None, None, 1024 ['conv4_block2_2_conv[0][0]']
ization) 256)
conv4_block2_2_relu (Activatio (None, None, None, 0 ['conv4_block2_2_bn[0][0]']
n) 256)
conv4_block2_3_conv (Conv2D) (None, None, None, 263168 ['conv4_block2_2_relu[0][0]']
1024)
conv4_block2_3_bn (BatchNormal (None, None, None, 4096 ['conv4_block2_3_conv[0][0]']
ization) 1024)
conv4_block2_add (Add) (None, None, None, 0 ['conv4_block1_out[0][0]',
1024) 'conv4_block2_3_bn[0][0]']
conv4_block2_out (Activation) (None, None, None, 0 ['conv4_block2_add[0][0]']
1024)
conv4_block3_1_conv (Conv2D) (None, None, None, 262400 ['conv4_block2_out[0][0]']
256)
conv4_block3_1_bn (BatchNormal (None, None, None, 1024 ['conv4_block3_1_conv[0][0]']
ization) 256)
conv4_block3_1_relu (Activatio (None, None, None, 0 ['conv4_block3_1_bn[0][0]']
n) 256)
conv4_block3_2_conv (Conv2D) (None, None, None, 590080 ['conv4_block3_1_relu[0][0]']
256)
conv4_block3_2_bn (BatchNormal (None, None, None, 1024 ['conv4_block3_2_conv[0][0]']
ization) 256)
conv4_block3_2_relu (Activatio (None, None, None, 0 ['conv4_block3_2_bn[0][0]']
n) 256)
conv4_block3_3_conv (Conv2D) (None, None, None, 263168 ['conv4_block3_2_relu[0][0]']
1024)
conv4_block3_3_bn (BatchNormal (None, None, None, 4096 ['conv4_block3_3_conv[0][0]']
ization) 1024)
conv4_block3_add (Add) (None, None, None, 0 ['conv4_block2_out[0][0]',
1024) 'conv4_block3_3_bn[0][0]']
conv4_block3_out (Activation) (None, None, None, 0 ['conv4_block3_add[0][0]']
1024)
conv4_block4_1_conv (Conv2D) (None, None, None, 262400 ['conv4_block3_out[0][0]']
256)
conv4_block4_1_bn (BatchNormal (None, None, None, 1024 ['conv4_block4_1_conv[0][0]']
ization) 256)
conv4_block4_1_relu (Activatio (None, None, None, 0 ['conv4_block4_1_bn[0][0]']
n) 256)
conv4_block4_2_conv (Conv2D) (None, None, None, 590080 ['conv4_block4_1_relu[0][0]']
256)
conv4_block4_2_bn (BatchNormal (None, None, None, 1024 ['conv4_block4_2_conv[0][0]']
ization) 256)
conv4_block4_2_relu (Activatio (None, None, None, 0 ['conv4_block4_2_bn[0][0]']
n) 256)
conv4_block4_3_conv (Conv2D) (None, None, None, 263168 ['conv4_block4_2_relu[0][0]']
1024)
conv4_block4_3_bn (BatchNormal (None, None, None, 4096 ['conv4_block4_3_conv[0][0]']
ization) 1024)
conv4_block4_add (Add) (None, None, None, 0 ['conv4_block3_out[0][0]',
1024) 'conv4_block4_3_bn[0][0]']
conv4_block4_out (Activation) (None, None, None, 0 ['conv4_block4_add[0][0]']
1024)
conv4_block5_1_conv (Conv2D) (None, None, None, 262400 ['conv4_block4_out[0][0]']
256)
conv4_block5_1_bn (BatchNormal (None, None, None, 1024 ['conv4_block5_1_conv[0][0]']
ization) 256)
conv4_block5_1_relu (Activatio (None, None, None, 0 ['conv4_block5_1_bn[0][0]']
n) 256)
conv4_block5_2_conv (Conv2D) (None, None, None, 590080 ['conv4_block5_1_relu[0][0]']
256)
conv4_block5_2_bn (BatchNormal (None, None, None, 1024 ['conv4_block5_2_conv[0][0]']
ization) 256)
conv4_block5_2_relu (Activatio (None, None, None, 0 ['conv4_block5_2_bn[0][0]']
n) 256)
conv4_block5_3_conv (Conv2D) (None, None, None, 263168 ['conv4_block5_2_relu[0][0]']
1024)
conv4_block5_3_bn (BatchNormal (None, None, None, 4096 ['conv4_block5_3_conv[0][0]']
ization) 1024)
conv4_block5_add (Add) (None, None, None, 0 ['conv4_block4_out[0][0]',
1024) 'conv4_block5_3_bn[0][0]']
conv4_block5_out (Activation) (None, None, None, 0 ['conv4_block5_add[0][0]']
1024)
conv4_block6_1_conv (Conv2D) (None, None, None, 262400 ['conv4_block5_out[0][0]']
256)
conv4_block6_1_bn (BatchNormal (None, None, None, 1024 ['conv4_block6_1_conv[0][0]']
ization) 256)
conv4_block6_1_relu (Activatio (None, None, None, 0 ['conv4_block6_1_bn[0][0]']
n) 256)
conv4_block6_2_conv (Conv2D) (None, None, None, 590080 ['conv4_block6_1_relu[0][0]']
256)
conv4_block6_2_bn (BatchNormal (None, None, None, 1024 ['conv4_block6_2_conv[0][0]']
ization) 256)
conv4_block6_2_relu (Activatio (None, None, None, 0 ['conv4_block6_2_bn[0][0]']
n) 256)
conv4_block6_3_conv (Conv2D) (None, None, None, 263168 ['conv4_block6_2_relu[0][0]']
1024)
conv4_block6_3_bn (BatchNormal (None, None, None, 4096 ['conv4_block6_3_conv[0][0]']
ization) 1024)
conv4_block6_add (Add) (None, None, None, 0 ['conv4_block5_out[0][0]',
1024) 'conv4_block6_3_bn[0][0]']
conv4_block6_out (Activation) (None, None, None, 0 ['conv4_block6_add[0][0]']
1024)
conv5_block1_1_conv (Conv2D) (None, None, None, 524800 ['conv4_block6_out[0][0]']
512)
conv5_block1_1_bn (BatchNormal (None, None, None, 2048 ['conv5_block1_1_conv[0][0]']
ization) 512)
conv5_block1_1_relu (Activatio (None, None, None, 0 ['conv5_block1_1_bn[0][0]']
n) 512)
conv5_block1_2_conv (Conv2D) (None, None, None, 2359808 ['conv5_block1_1_relu[0][0]']
512)
conv5_block1_2_bn (BatchNormal (None, None, None, 2048 ['conv5_block1_2_conv[0][0]']
ization) 512)
conv5_block1_2_relu (Activatio (None, None, None, 0 ['conv5_block1_2_bn[0][0]']
n) 512)
conv5_block1_0_conv (Conv2D) (None, None, None, 2099200 ['conv4_block6_out[0][0]']
2048)
conv5_block1_3_conv (Conv2D) (None, None, None, 1050624 ['conv5_block1_2_relu[0][0]']
2048)
conv5_block1_0_bn (BatchNormal (None, None, None, 8192 ['conv5_block1_0_conv[0][0]']
ization) 2048)
conv5_block1_3_bn (BatchNormal (None, None, None, 8192 ['conv5_block1_3_conv[0][0]']
ization) 2048)
conv5_block1_add (Add) (None, None, None, 0 ['conv5_block1_0_bn[0][0]',
2048) 'conv5_block1_3_bn[0][0]']
conv5_block1_out (Activation) (None, None, None, 0 ['conv5_block1_add[0][0]']
2048)
conv5_block2_1_conv (Conv2D) (None, None, None, 1049088 ['conv5_block1_out[0][0]']
512)
conv5_block2_1_bn (BatchNormal (None, None, None, 2048 ['conv5_block2_1_conv[0][0]']
ization) 512)
conv5_block2_1_relu (Activatio (None, None, None, 0 ['conv5_block2_1_bn[0][0]']
n) 512)
conv5_block2_2_conv (Conv2D) (None, None, None, 2359808 ['conv5_block2_1_relu[0][0]']
512)
conv5_block2_2_bn (BatchNormal (None, None, None, 2048 ['conv5_block2_2_conv[0][0]']
ization) 512)
conv5_block2_2_relu (Activatio (None, None, None, 0 ['conv5_block2_2_bn[0][0]']
n) 512)
conv5_block2_3_conv (Conv2D) (None, None, None, 1050624 ['conv5_block2_2_relu[0][0]']
2048)
conv5_block2_3_bn (BatchNormal (None, None, None, 8192 ['conv5_block2_3_conv[0][0]']
ization) 2048)
conv5_block2_add (Add) (None, None, None, 0 ['conv5_block1_out[0][0]',
2048) 'conv5_block2_3_bn[0][0]']
conv5_block2_out (Activation) (None, None, None, 0 ['conv5_block2_add[0][0]']
2048)
conv5_block3_1_conv (Conv2D) (None, None, None, 1049088 ['conv5_block2_out[0][0]']
512)
conv5_block3_1_bn (BatchNormal (None, None, None, 2048 ['conv5_block3_1_conv[0][0]']
ization) 512)
conv5_block3_1_relu (Activatio (None, None, None, 0 ['conv5_block3_1_bn[0][0]']
n) 512)
conv5_block3_2_conv (Conv2D) (None, None, None, 2359808 ['conv5_block3_1_relu[0][0]']
512)
conv5_block3_2_bn (BatchNormal (None, None, None, 2048 ['conv5_block3_2_conv[0][0]']
ization) 512)
conv5_block3_2_relu (Activatio (None, None, None, 0 ['conv5_block3_2_bn[0][0]']
n) 512)
conv5_block3_3_conv (Conv2D) (None, None, None, 1050624 ['conv5_block3_2_relu[0][0]']
2048)
conv5_block3_3_bn (BatchNormal (None, None, None, 8192 ['conv5_block3_3_conv[0][0]']
ization) 2048)
conv5_block3_add (Add) (None, None, None, 0 ['conv5_block2_out[0][0]',
2048) 'conv5_block3_3_bn[0][0]']
conv5_block3_out (Activation) (None, None, None, 0 ['conv5_block3_add[0][0]']
2048)
==================================================================================================
Total params: 23,587,712
Trainable params: 23,534,592
Non-trainable params: 53,120
__________________________________________________________________________________________________
def extract_images(path_images, model):
images_list = []
for path_img in tqdm(path_images):
img = load_img(path_img, target_size=(224, 224))
images = img_to_array(img)
images = np.expand_dims(images, axis=0)
images = preprocess_input(images)
features = model.predict(images, verbose=0)
images_list.append(features.flatten())
return np.array(images_list)
data = '../DATA'
data_ = [os.path.join(data, _data_) for _data_ in os.listdir(data)]
path_images = [os.path.join(_data_, filename) for _data_ in data_ for filename in os.listdir(_data_)]
image = extract_images(path_images, model)
100%|██████████| 5000/5000 [05:39<00:00, 14.73it/s]
kmeans = KMeans(n_clusters=10, n_init='auto', random_state=seed)
predicted_labels = kmeans.fit_predict(image)
def image_show(path_images, labels, cluster_id):
cluster_indices = np.where(labels == cluster_id)[0]
sample_indices = np.random.choice(cluster_indices, 5, replace=False)
plt.figure(figsize=(14, 5))
for i, idx in enumerate(sample_indices):
plt.subplot(1, 5, i+1)
img = load_img(path_images[idx], target_size=(224, 224))
plt.imshow(img)
plt.axis('off')
plt.show()
for cluster_id in range(10):
print(f"Cluster {cluster_id}:")
image_show(path_images, predicted_labels, cluster_id)
Cluster 0:
Cluster 1:
Cluster 2:
Cluster 3:
Cluster 4:
Cluster 5:
Cluster 6:
Cluster 7:
Cluster 8:
Cluster 9:
true_labels = [os.path.basename(os.path.dirname(path_img)) for path_img in path_images]
label_encoder = LabelEncoder()
true_labels_encoded = label_encoder.fit_transform(true_labels)
class_names = np.array(label_encoder.classes_)
confusion = confusion_matrix(true_labels_encoded, predicted_labels)
order = np.argmax(confusion, axis=0)
confusion = confusion[order]
class_names = class_names[order]
ConfusionMatrixDisplay(confusion, display_labels=class_names).plot()
plt.xticks(rotation=90)
order = np.argmax(confusion, axis=0)
confusion = confusion[order]
class_names = class_names[order]
ConfusionMatrixDisplay(confusion, display_labels=class_names).plot()
plt.xticks(rotation=90)
accuracy = np.trace(confusion) / np.sum(confusion)
print(f'Accuracy: {accuracy * 100 :.2f}%')
Accuracy: 73.16%
pip install scikit-llm
minha chave de acesso , usei para teste, e agora para a realizade o gpt não libera mais consulta e não me permite criar outra :( a não ser que eu compre.
from skllm.config import SKLLMConfig
SKLLMConfig.set_openai_key("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")
SKLLMConfig.set_openai_org("org-utgPiW76Y5bDj7FP3762hS2z")
from skllm import ZeroShotGPTClassifier
from skllm.datasets import get_classification_dataset
X, _ = get_classification_dataset()
clf = ZeroShotGPTClassifier()
clf.fit(None, ['positive', 'negative', 'neutral'])
labels = clf.predict(X)